package com.jyw.system.service.impl;

import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson2.JSONObject;
import com.jyw.common.utils.DateUtils;
import com.jyw.system.domain.SysConfig;
import com.jyw.system.domain.vo.SysReminderRulesConfigVo;
import com.jyw.system.enums.OtherConfigEnum;
import com.jyw.system.service.ISysConfigService;
import com.jyw.system.service.ISysReminderRulesConfigService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * @author Created by ZhangCheng on 2024/01/11
 */
@Service
public class SysReminderRulesConfigServiceImpl implements ISysReminderRulesConfigService {

    @Resource
    private ISysConfigService sysConfigService;

    @Override
    public SysReminderRulesConfigVo getDefaultConfig() {
        SysConfig sysConfig = sysConfigService.findConfigByKey(OtherConfigEnum.REMINDER_RULES.getKey());
        if (sysConfig != null && StrUtil.isNotEmpty(sysConfig.getConfigValue())) {
            return JSONObject.parseObject(sysConfig.getConfigValue(), SysReminderRulesConfigVo.class);
        }
        SysReminderRulesConfigVo configVo1=new SysReminderRulesConfigVo();
        configVo1.setReminderMinutes(10);
        configVo1.setReminderTimes(1);
        return configVo1;
    }

    @Override
    public void updateConfig(SysReminderRulesConfigVo sysReminderRulesConfigVo) {
        SysConfig sysConfig = sysConfigService.findConfigByKey(OtherConfigEnum.REMINDER_RULES.getKey());
        String configValue = JSONObject.toJSONString(sysReminderRulesConfigVo);
        if (sysConfig != null) {
            sysConfig.setConfigValue(configValue);
            sysConfig.setUpdateTime(DateUtils.getNowDate());
            sysConfigService.updateConfig(sysConfig);
        } else {
            sysConfigService.initConfig(configValue, OtherConfigEnum.REMINDER_RULES);
        }
    }
}
